﻿// <copyright file="ModCollection.cs" company="SingularityShift">
// Copyright (c) 2009 SingularityShift.com
// </copyright>
// <author>Ben McClure</author>
// <email>ben@singularityshift.com</email>
// <date>2009-08-14</date>
// <summary>The primary implementation of an IModCollection, extending AbstractModCollection and providing a concrete generic list for IMods.</summary>
namespace GameLib.Games.Components
{
    /// <summary>
    /// A generic collection of IMod objects
    /// </summary>
    /// <typeparam name="T">The type of IMod this collection holds.</typeparam>
    public class ModCollection<T> : AbstractModCollection<T>, IModCollection<T>, IModCollection where T : IMod
    {
        /// <summary>
        /// Initializes a new instance of the ModCollection class, specifying an IGame owner.
        /// </summary>
        /// <param name="owner">The IGame which owns this collection of mods</param>
        public ModCollection(IGame<T> owner)
        {
            Owner = owner;
        }

        /// <summary>
        /// Initializes a new instance of the ModCollection class for cloning and deserialization.
        /// </summary>
        protected ModCollection()
        {
        }
    }
}